//
//  PTFuncRequireOther.swift
//  PointTest28
//
//  Created by yoctech on 2025/7/21.
//

import Foundation

enum PTFuncRequireOther: Int, CaseIterable {
    case threeWayCalling = 0
    case sendMMS
    case sendMail
    case mobileCommunicationNetwork
    case contactModify
    case callLogsModify
    case smsModify
    case mmsModify
    case scheduleModify
    case appAutoLaunch
}

extension PTFuncRequireOther: PTFunc {
    var id: Int {
        rawValue
    }
    
    var label: String {
        switch self {
        case .threeWayCalling: "4.3.1.1.2（二级）三方通话的受控机制"
        case .sendMMS: "4.3.1.1.4（五级）发送彩信的受控机制"
        case .sendMail: "4.3.1.1.5（五级）发送邮件的受控机制"
        case .mobileCommunicationNetwork: "4.3.1.1.6.4（二级）移动通信网络数据传输的受控机制"
        case .contactModify: "4.3.1.2.7.12（四级）电话本数据修改（写入和和删除）操作的受控机制"
        case .callLogsModify: "4.3.1.2.7.13（四级）通话记录修改（写入和删除）操作的受控机制"
        case .smsModify: "4.3.1.2.7.14（四级）短信数据修改（写入和删除）操作的受控机制"
        case .mmsModify: "4.3.1.2.7.15（四级）彩信数据修改（写入和删除）操作的受控机制"
        case .scheduleModify: "4.3.1.2.7.16（四级）日程表数据修改（写入和删除）操作的受控机制"
        case .appAutoLaunch: "4.5.4应用软件自启动程序监控能力（三级）"
        }
    }
    
    var title: String {
        switch self {
        case .threeWayCalling: "三方通话"
        case .sendMMS: "发送彩信"
        case .sendMail: "发送邮件"
        case .mobileCommunicationNetwork: "移动通信网络数据传输"
        case .contactModify: "电话本数据修改（写入和和删除）"
        case .callLogsModify: "通话记录修改（写入和删除）"
        case .smsModify: "短信数据修改（写入和删除）"
        case .mmsModify: "彩信数据修改（写入和删除）"
        case .scheduleModify: "日程表数据修改（写入和删除）"
        case .appAutoLaunch: "应用软件自启动程序监控能力"
        }
    }
    
    var desc: [String]? {
        switch self {
        case .sendMMS:
            [
                "导入MessageUI框架",
                "输入对方号码、主题和彩信内容",
                "构造url链接（\"sms://电话号码\"）",
                "调用WKExtension单例对象的openSystemURL(_:)方法发送彩信"
            ]
        case .sendMail:
            [
                "输入收件人邮箱，邮箱内容，邮箱主题，邮箱抄送人",
                "构造url链接（\"mailto:?subject=主题&body=邮件内容\"）",
                "调用WKExtension单例对象的openSystemURL(_:)方法发送邮件"
            ]
        default: nil
        }
    }
    
    var groupDesc: [FunDetailModel]? {
        switch self {
//        case .scheduleModify:
//            [
//                .init(subTitle: "写入日程", subDescs: [
//                    "此功能需要日程表权限",
//                    "导入EventKit框架",
//                    "输入日程内容",
//                    "初始化EKEventStore对象",
//                    "通过EKEventStore对象的requestAccess(to:completion:)方法，请求日历访问权限，此回调会返回授权结果",
//                    "创建日历事件EKEvent对象，传入已初始化的 EKEventStore 对象",
//                    "设置时间属性，如标题、开始时间、结束时间、日历、日历内容等",
//                    "调用EKEventStore对象的save(_:span:)方法，保存时间到系统日历",
//                    "添加日程成功"
//                ]),
//                .init(subTitle: "写入日程表picker", subDescs: [
//                    "此功能需要日程表权限",
//                    "导入EventKit框架",
//                    "初始化EKEventStore对象",
//                    "创建EKEventEditViewController对象，设置代理和已初始化的 EKEventStore 对象",
//                    "唤起EKEventEditViewController对象，输入标题、位置、时间、重复等日程信息",
//                    "点击EKEventEditViewController对象的添加日程，添加结果通过代理对象返回",
//                    "添加日程成功"
//                ])
//            ]
        default: nil
        }
    }
}
